package com.zcx.test.service;

import com.zcx.test.common.vo.UserQuery;
import com.zcx.test.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户Service层
 * @author zhaochangxin
 * @date 2022/3/2 14:34
 */
public interface UserService {
    /**
    　* @author zhaochangxin
    　* @Description:登陆方法
    　* @Param user:
    　* @return: com.zcx.test.pojo.User
    　* @date 2022/3/9 17:58
    　* @throws
    　*/
    User userLogin(User user);
    /**
    　* @author zhaochangxin
    　* @Description:通过用户id返回User
    　* @Param id:
    　* @return: com.zcx.test.pojo.User
    　* @date 2022/3/10 9:21
    　* @throws
    　*/
    User queryUserById(String id);
    /**
    　* @author zhaochangxin
    　* @Description:用户注册
    　* @Param user:
    　* @return: void
    　* @date 2022/3/10 9:22
    　* @throws
    　*/
    void userRegister(User user);
    /**
    　* @author zhaochangxin
    　* @Description:修改密码接口 传入User
    　* @Param user:
    　* @return: void
    　* @date 2022/3/10 9:22
    　* @throws
    　*/
    void updatePassword(User user);
    /**
    　* @author zhaochangxin
    　* @Description:查询所有user下的用户 传入UserQuery
    　* @Param param:
    　* @return: java.util.List<com.zcx.test.pojo.User>
    　* @date 2022/3/10 9:22
    　* @throws
    　*/
    List<User> queryUserList(UserQuery param);
    /**
    　* @author zhaochangxin
    　* @Description:计算查询到的数据量
    　* @Param param:
    　* @return: java.lang.Long
    　* @date 2022/3/10 9:22
    　* @throws
    　*/
    Long countUserList(UserQuery param);
    /**
    　* @author zhaochangxin
    　* @Description:通过id删除用户
    　* @Param ids:
    　* @return: void
    　* @date 2022/3/10 9:23
    　* @throws
    　*/
    void deleteUserById(String ids);



//    笨比方法
    /**
    　* @author zhaochangxin
    　* @Description:修改用户权限方法
    　* @Param ids
    　* @return: void
    　* @date 2022/3/10 13:52
    　* @throws
    　*/
    void updateUserRoleById(@Param("ids")List<String> ids,@Param("user_id")String user_id);

    void deleteUserRoleById(String id);

}
